助力秋招-独孤九剑荡剑式 | Java语言&基础面试题
来源:大数据技术与架构
作者:编辑组,编辑组现在就剩我一个人:王知无。一个人就是一支队伍。
By 大数据技术与架构
如果本文对你有帮助,别说话别谢我,转发给你的同事、朋友和同学。
另外本文不会给答案,少数难题会给出思路,你是个程序员了,要学会自己查资料。
Java语言基础
final, finally, finalize 的区别
final 在 java 中有什么作用,如何实现的
Exception、Error、运行时异常与一般异常有何异同
请写出5种常见到的runtime exception
int 和 Integer 有什么区别,Integer的值缓存范围
包装类,装箱和拆箱
如何将字符串反转
java 中操作字符串都有哪些类,它们之间有什么区别
String 类的常用方法都有哪些
String、StringBuilder、StringBuffer
String str="i"与 String str=new String(“i”)有什么区别吗
String 属于基础的数据类型吗
重载和重写的区别
抽象类和接口有什么区别
说说反射的用途及实现
说说自定义注解的场景及实现
== 和 equals 的区别是什么?
两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
String中hashcode是怎么实现的
java 中的 Math.round(-1.5) 等于多少?
抽象类必须要有抽象方法吗?
普通类和抽象类有哪些区别?
抽象类能使用 final 修饰吗?
接口和抽象类有什么区别?
java 中 IO 流分为几种?
BIO、NIO、AIO 有什么区别?
Files的常用方法都有哪些?
集合
List 和 Set 区别
Set和hashCode以及equals方法的联系
List 和 Map 区别
Arraylist 与 LinkedList 区别
ArrayList 与 Vector 区别
HashMap 和 Hashtable 的区别
HashSet 和 HashMap 区别
HashMap 和 ConcurrentHashMap 的区别
HashMap 的工作原理及代码实现,什么时候用到红黑树
多线程情况下HashMap死循环的问题
HashMap出现Hash DOS攻击的问题
ConcurrentHashMap 的工作原理及代码实现,如何统计所有的元素个数
手写简单的HashMap
看过那些Java集合类的源码
Collection 和 Collections 有什么区别
List、Set、Map 之间的区别是什么
TreeMap是如何实现的
HashMap 的实现原理,HashSet呢
数组和 List 之间如何转换
Queue 中 poll()和 remove()的区别
哪些集合类是线程安全的
迭代器 Iterator 是什么
Iterator 怎么使用,有什么特点
Iterator 和 ListIterator 有什么区别
怎么确保一个集合不能被修改
并发&多线程&锁
线程、进程、程序的异同
守护线程及其与非守护线程的区别
线程和进程的概念、并行和并发的概念
创建线程的方式及实现
进程间通信的方式
什么是多线程上下文切换
Java 中用到的线程调度算法是什么
什么是线程饥饿
你对线程优先级的理解是什么
sleep、join、yield 方法有什么区别
ThreadLocal变量,使用注意事项
interrupted 和 isInterrupted 方法有什么区别
线程池的实现?四种线程池?重要参数及原理?任务拒接策略有哪几种?
线程池的关闭方式,有什么区别
线程池如何调优,最大数目如何确认?
线程状态以及API怎么操作会发生这种转换
Java 线程池大小为何会大多被设置成 CPU 核心数 +1
什么是 Callable、Future、FutureTask ?
Fork/Join 框架
说说 CountDownLatch、CyclicBarrier 原理和区别
说说 Semaphore 原理
说说 Exchanger 原理
ThreadLocal 原理分析,ThreadLocal为什么会出现OOM,出现的深层次原理
讲讲线程池的实现原理
线程池的几种实现方式
线程的生命周期,状态是如何转移的
一个线程连着调用start两次会出现什么情况
synchronized的原理,ReentraLock的原理,二者异同,哪个是公平锁
volatile 实现原理
J.U.C并发包下用过哪个类,场景是什么
wait方法能不能被重写,wait能不能被中断
常用的避免死锁方法
分段锁的原理,锁力度减小的思考
Condition接口及其实现原理
LockSupport工具
什么是悲观锁、乐观锁
偏向锁,轻量级锁,重量级锁
锁自旋,锁削除,锁膨胀
Java的内存模型(注意:这里不是说JVM的模型)
happens-before原则
SynchronizedMap 和 ConcurrentHashMap 什么区别
常用的并发容器,重点CopyOnWriteArrayList
Java 提供了哪些阻塞队列的实现,各个阻塞队列的特性
AtomicInteger底层实现原理
CAS机制会出现什么问题
Java 并发工具类:Semaphore、CountDownLatch、CyclicBarrier、Exchanger
JVM
JVM 由哪些部分组成
JVM运行时内存区域划分
内存溢出OOM和堆栈溢出SOE的示例及原因、如何排查与解决
如何判断对象是否可以回收或存活
常见的GC回收算法及其含义
常见的JVM性能监控和故障处理工具类:jps、jstat、jmap、jinfo、jconsole等
JVM如何设置参数
JVM性能调优
类加载器、双亲委派模型、一个类的生命周期、类是如何加载到JVM中的
类加载的过程:加载、验证、准备、解析、初始化
强引用、软引用、弱引用、虚引用
Java内存模型JMM
JDK8 之后 Perm Space 有哪些变动? MetaSpace ⼤⼩默认是⽆限的么? 还是你们会通过什么⽅式来指定⼤⼩?
Java 内存堆和栈区别
JAVA 对象创建的过程
OutOfMemoryError有哪些
垃圾回收机制
如何判断一个对象是否已经死去
常用的垃圾回收器
G1 和 CMS 的区别
对象分配规则是怎么样的
如何排查线程 Full GC频繁的问题
虚拟机类加载机制
双亲委派模型
如何破坏双亲委托模型,哪里遇到过这种情况?(Tomcat)
了解虚拟机字节码执行引擎JIT
设计模式
推荐一个Github仓库:
https://github.com/tim-chow/DesignPattern
常见的设计模式
设计模式的的六大原则及其含义
常见的单例模式以及各种实现方式的优缺点,哪一种最好
单例模式的9种写法(闭着眼睛写不出来的去面壁)
设计模式在实际场景中的应用
Spring中用到了哪些设计模式
MyBatis中用到了哪些设计模式
你项目中有使用哪些设计模式
说说常用开源框架中设计模式使用分析
动态代理很重要
Mysql
数据库索引原理,什么是全文索引,全文索引中的倒排索引是什么原理
数据库最佳左前缀原则是什么
数据库的三大范式
悲观锁和乐观锁的原理和应用场景
左连接、右连接、内连接、外连接、交叉连接、笛卡儿积等
一般情况下数据库宕机了如何进行恢复(什么是Write Ahead Log机制,什么是Double Write机制,什么是Check Point)
什么是redo日志、什么是undo日志
数据库中的隔离性是怎样实现的
原子性、一致性、持久性又是如何实现的
什么是组合索引,组合索引什么时候会失效
数据库死锁如何解决
MySQL并发情况下怎么解决(通过事务、隔离级别、锁)
MySQL中的MVCC机制是什么意思,根据具体场景,MVCC是否有问题
MySQL数据库的隔离级别,以及如何解决幻读
MySQL 索引使用的注意事项
DDL、DML、DCL分别指什么
explain命令
数据库事物ACID(原子性、一致性、隔离性、持久性)
事物的隔离级别(读未提交、读已提交、可重复读、可序列化读)
脏读、幻读、不可重复读
说说分库与分表设计
分库与分表带来的分布式困境与应对之策(如何解决分布式下的分库分表)
说说 SQL 优化之道
MySQL遇到的死锁问题、如何排查与解决
存储引擎的 InnoDB与MyISAM区别,优缺点,使用场景
索引类别(B+树索引、全文索引、哈希索引)、索引的原理
什么是自适应哈希索引(AHI)
为什么要用 B+tree作为MySQL索引的数据结构
聚集索引与非聚集索引的区别
遇到过索引失效的情况没,什么时候可能会出现,如何解决
MySQL 主从复制的流程是怎么样的?如何保证复制过程中数据一致性?如何解决主从复制的延时性?
MySQL备份方式
limit 20000 加载很慢怎么解决
选择合适的数据存储方案
基于Mysql的分布式ID的设计方案
常见的数据库优化方案,在你的项目中数据库如何进行优化的
Netty
BIO、NIO、AIO的概念区别和联系
Netty是什么?使用场景?
Netty 如何实现高性能
(线程模型、堆外内存、内存池设计、队列优化、并发能力、降低锁竞争、内存泄露检测)
Netty的高可靠性
Netty的高扩展性
Netty的核心组件
Reactor模型
线程模型
TCP粘包/拆包的原因和解决办法
支持的序列化协议
Netty的零拷贝
Netty是怎么解决原生的 NIO 存在 Epoll Bug
Netty空闲检测
Netty如何实现重连
Netty自己实现的 ByteBuf 有什么优点
Netty如何实现内存管理
Netty的内存泄露检测?是如何进行实现的
说说你读过Netty哪些源码
参考文章列表:
https://www.jianshu.com/p/1acdfac2b4e4
https://www.jianshu.com/p/ac6b889e73c5
https://www.jianshu.com/p/aa7afeba9368
https://blog.csdn.net/sufu1065/article/details/88051083
欢迎点赞+收藏+转发朋友圈素质三连